package cn.kgc.watch.service.impl;

import cn.kgc.watch.entity.CommoditySku;
import cn.kgc.watch.entity.Specification;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONPatch;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import cn.kgc.watch.mapper.CommoditySkuMapper;
import cn.kgc.watch.service.CommoditySkuService;

import java.util.Date;

@Service
public class CommoditySkuServiceImpl implements CommoditySkuService {

    @Resource
    private CommoditySkuMapper commoditySkuMapper;

    @Override
    public CommoditySku findById(Integer id) {
        CommoditySku commoditySku =this.commoditySkuMapper.selectById(id);
        String SpecificationStr = commoditySku.getSpecification();
        Specification specification  = JSONObject.parseObject(SpecificationStr,Specification.class);
        commoditySku.setSpecificationObject(specification);
        return commoditySku;
    }

    @Override
    public PageInfo<CommoditySku> selectAll(Integer pageSize) {
        return null;
    }

    @Override
    public Integer addSku(CommoditySku commoditySku) {
        commoditySku.setSpecification(JSON.toJSONString(commoditySku.getSpecificationObject()));
        commoditySku.setCreateTime(new Date());
        commoditySku.setEnable(1);
        this.commoditySkuMapper.insert(commoditySku);
         return Math.toIntExact(commoditySku.getId());
    }

    @Override
    public void adminModifyCommoditySku(CommoditySku commoditySku) {
        if(commoditySku.getSpecificationObject()!=null) {
            commoditySku.setSpecification(JSON.toJSONString(commoditySku.getSpecificationObject()));
        }
        this.commoditySkuMapper.adminUpdateCommoditySku(commoditySku);
    }

    @Override
    public CommoditySku findAdminByIdCommoditySku(Integer id) {
        CommoditySku commoditySku = this.commoditySkuMapper.selectAdminByIdCommoditySku(id);
        commoditySku.setSpecificationObject(JSONObject.parseObject(commoditySku.getSpecification(),Specification.class));
        return commoditySku;
    }

    @Override
    public CommoditySku findAll(Integer id) {
        return this.commoditySkuMapper.selectAll(id);
    }


}
